#pragma once
#include "App.h"
#include <GL/freeglut.h>
class AppImpGL :
	public App
{
public:
	static AppImpGL* GetInstance();
	virtual ~AppImpGL(void);

	virtual bool InitApp(const char* title, u32 arg1 = 0, u32 arg2 = 0, u32 arg3 = 0, u32 arg4 = 0);
	virtual bool Create(int w, int h);

	virtual void MainLoop();

	void EventReshape(int w, int h);
	void EventTimer(int value);
	void EventKeyboard(unsigned char key, int x, int y);
	void EventMouse(int button, int state, int x, int y);
	void EventMotion(int x, int y);

	void Update();
	void Paint();

protected:
	AppImpGL(void) {};

private:
	int m_windowWidth, m_windowHeight;
	u32 m_displayMode;
	u32 m_shadeModel;
};

